Skip to main content

Ejemplo 02 de CNC: Decodificación en línea con variables

Ver el CNC02_online.project proyecto de ejemplo en el directorio de instalación de CODESYS bajo ..\CODESYS SoftMotion\Examples.

El ejemplo muestra cómo usar variables para decodificar un programa CNC.

Crear un programa NC en el editor CNC

  1. Crear un CNCOnline programa con un SoftMotion controlador.

  2. Cree una lista de variables globales y declare dos variables.

    VAR_GLOBAL
            g_x: REAL:=100;
            g_y:REAL:=50;
    END_VAR
  3. Insertar un Programa CNC objeto nombrado Example.

    Selecciona el ImplementaciónDin66025 y el Modo de compilaciónSMC_CNC_REF. Este modo es necesario porque utiliza variables en su programa.

  4. Especifique los siguientes bloques de movimiento:

    Editor CNC:

    _sm_img_example_cnc2_1.png

Creación de una interfaz de accionamiento y configuración de PLC

Definir una estructura de unidad (p. Ej. CNCdirect).

Crear un programa IEC

  1. Agregue un POU (CFC) llamado Path a la aplicación.

    La decodificación del programa NC para OUTQUEUE y la verificación de velocidad se realizan en el Path programa.

    Vocación SMC_CheckVelocities es requerido.

    CFC:

    _sm_img_example_cnc2_3.png
  2. Agregue un POU (CFC) llamado Ipo a la aplicación.

    Este programa es casi idéntico al CNCdirect proyecto de muestra. Sin embargo, la entrada de datos del interpolador no se corresponde con los nombres de los programas del CNC (ADR(Example)), sino a la salida OutQueue de los bloques de funciones de preprocesamiento de ruta (checkVel.poqDataOut).

Crear una tarea para el preprocesamiento de rutas

Porque ha seleccionado el modo de compilación SMC_CNC_REF, debe realizar la decodificación y el preprocesamiento de ruta en el programa IEC. Este cálculo requiere mucho tiempo. No es necesario que se ejecute en el ciclo del interpolador porque se genera un objeto de ruta por llamada al decodificador, y este objeto se usa normalmente para muchas llamadas al interpolador. Debe cambiar esta operación a una tarea con baja prioridad y llamadas menos frecuentes.

  1. Crear un PathTask tarea.

  2. Defina los siguientes parámetros:

    • Prioridad: 10

    • Intervalo: T # 30 ms

  3. Añade el Path POU a la tarea.

figura 1. Tarea "PathTask"
Tarea "PathTask"


. Mecanismo subyacente:
  • En la tarea lenta, al principio se genera aproximadamente un objeto GEOINFO por ciclo. Este objeto se almacena en la estructura OUTQUEUE del bloque de funciones del decodificador. Si la SALIDA está llena, los bloques de funciones de la tarea lenta se detienen hasta que la SALIDA ya no está llena. Esto sucede tan pronto como la tarea rápida procesa el primer objeto GEOINFO y lo elimina de la SALIDA.

  • Luego, los bloques de función de la tarea lenta se vuelven a activar y llenan la estructura OUTQUEUE.

  • En la tarea rápida, un punto de ruta de la estructura OUTQUEUE, que el DataIn puntos de entrada, se calcula y procesa en cada ciclo. Debido a que un objeto GEOINFO generalmente consta de múltiples puntos de ruta, se necesitan algunos ciclos hasta que el primer objeto GEOINFO sea procesado y eliminado automáticamente por el interpolador.

  • Como el procesamiento de un objeto GEOINFO dura varios ciclos en lugar de su creación, la tarea lenta se puede llamar con menos frecuencia que la tarea rápida.

  • Sin embargo, los tiempos de las tareas deben seleccionarse de modo que siempre se almacenen suficientes objetos GEOINFO en el último OUTQUEUE de la tarea lenta, evitando así la aparición de datos insuficientes. Esto sucede cuando no hay más objetos GEOINFO disponibles para el interpolador desde DataIn y aún no se ha alcanzado el final de la ruta. En este caso, el interpolador se ralentiza y se detiene hasta que los nuevos elementos de datos vuelven a estar disponibles.

Creación de una interfaz operativa y una interfaz de prueba

La visualización corresponde a la CNCdirect.project proyecto de muestra. Agregue plantillas adicionales a los nuevos bloques de funciones (SMC_NCDecoder y SMC_CheckVelocities). Cree una pantalla también para las variables globales g_x y g_y para que pueda comprobar su funcionamiento más tarde en la puesta en servicio.

Puesta en servicio

Compile e inicie el programa creado. El programa ejecuta el movimiento del CNC tan pronto como Execute Se ha configurado la entrada del decodificador y el interpolador. Si cambia los valores de las variables globales, entonces se utilizan cuando se reinicia el decodificador y la ruta se adapta en consecuencia. Supervise la función del Append entrada del decodificador también.